只使用 ! ~ & ^ | + << >> 这些操作符,判断是否为零

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:28:46
写一个函数
int isZero(int x) {
}
如果x=0,返回1;否则返回0
但是只能使用! ~ & ^ | + << >>这几个操作符。
也就是说不能使用任何if,switch之类的。
而且所有操作符一共最多只能使用2次。

怎么做,怎么做???

如果不明白我问什么的,举个例子
只使用~ &来写|
/*
* bitOr : x|y using only ~ and &
* Example: bitOr(6, 5) = 7
* Legal ops: ~ &
* Max ops: 8
*/
int bitOr(int x, int y) {
int var1 = ~x;
int var2 = ~y;
int var3 = var1 & var2;
int var4 = ~var3;
return var4;

//return 2;

}

int isZero(int x)
{
return !x;
}

int isZero(int x) {
return !x;
}

貌似是SSD6的Exercise2。前两题要用到德·摩根律,后面的都很简单。熟悉一下位操作,考试很容易考到。